package com.shujia.day07;

/*
    继承和构造方法的关系
    在java继承关系中，要想初始化子类，必须先初始化其父类，这里默认super()体现的就是这个意思

    1、子类构造方法的第一句话，默认会有一个super()，对父类做初始化，只能在子类构造方法第一句出现。
    问题：如果父类中没有无参构造方法呢？
        1）使用super关键字调用父类中的有参构造方法，完成父类的初始化
        2）调用当前类中其它有参的构造方法间接对父类做初始化
    2、java中每一个只允许初始化一次


 */
class Fu4{
//    Fu4(){
//        System.out.println("这是父类中的无参构造方法.....");
//    }

    Fu4(String s){
        System.out.println("这是父类中有参数的构造方法....");
    }
}

class Son4 extends Fu4{
    Son4(){
        //super()
        super("数加");
//        this("数加");
        System.out.println("这是子类的无参构造方法.....");
//        super("数加");
    }

    Son4(String s){
        super(s);
    }
}

public class ExtendsDemo6 {
    public static void main(String[] args) {
        Son4 son4 = new Son4();
    }
}
